package mn.idax.exchange.otc.dto;


import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import lombok.NoArgsConstructor;
import mn.idax.exchange.common.bean.IdaxBase;
import mn.idax.exchange.otc.enums.LogTypeEnum;
import mn.idax.exchange.otc.enums.MessageTypeEnum;

@Data
@NoArgsConstructor
@ApiModel("ChatLogDTO 描述")
public class ChatLogDto extends IdaxBase {

    @ApiParam("uuid:消息唯一标识")
    private String uuid;
    @ApiParam("sendTime:消息发送时间")
    private Long sendTime;
    @ApiParam("message:消息内容")
    private String message;
    @ApiParam("source:资源地址")
    private String source;
    @ApiParam("name:资源名")
    private String name;
    @ApiParam("msgType:内容类型{words:文字, image:图片, audio:音频, video:视频, file:文件}")
    private MessageTypeEnum msgType;
    @ApiParam("logType:消息类型{buyer:买方发送, seller:卖方发送, buyerSys:买方自动回复, sellerSys:卖方自动回复, system:系统消息, staff:客服发送}")
    private LogTypeEnum logType;
    @ApiParam("readFlag:是否已读{0:未读,1:已读}")
    private Integer readFlag;
    @ApiParam("orderId:订单编号")
    private String orderId;
    @ApiParam("userName:用户昵称")
    private String userName;
    @ApiParam("userLogo:用户头像")
    private String userLogo;

    private Object[] dynamicParam;

//    public static List<ChatLogDto> getChatLogDtoList(List<ChatLog> chatLogList, Map<String, JSONObject> userMap) {
//
//        String lang = null;
//        List<ChatLogDto> resultList = new ArrayList<>();
//        for (ChatLog chatLog : chatLogList) {
//            ChatLogDto chatLogDto = new ChatLogDto();
//            BeanUtils.copyProperties(chatLog, chatLogDto);
//            if (chatLog.getLogType().equals(LogTypeEnum.system)){
//                chatLogDto.setMessage(I18nUtil.getMessage(chatLog.getMessage() , lang,  chatLog.getDynamicParam()));
//            }
//            if (userMap.containsKey(chatLog.getSenderId().toString())) {
//                chatLogDto.setUserName(userMap.get(chatLog.getSenderId().toString()).getString("userName"));
//                chatLogDto.setUserLogo(userMap.get(chatLog.getSenderId().toString()).getString("userLogo"));
//            } else {
//                if (LogTypeEnum.staff.equals(chatLog.getLogType())) {
//                    //todo do nothing
//                }
//            }
//            resultList.add(chatLogDto);
//        }
//        return resultList;
//    }
//
//    public static List<ChatLogDto> getChatLogDtoList(List<ChatLog> chatLogList, Map<String, JSONObject> userMap, boolean isStaff) {
//
//        List<ChatLogDto> resultList = new ArrayList<>();
//        if (!isStaff){
//            return getChatLogDtoList(chatLogList, userMap);
//        }else {
//            for (ChatLog chatLog : chatLogList) {
//                ChatLogDto chatLogDto = new ChatLogDto();
//                BeanUtils.copyProperties(chatLog, chatLogDto);
//                if (userMap.containsKey(chatLog.getSenderId().toString())) {
//                    chatLogDto.setUserName(userMap.get(chatLog.getSenderId().toString()).getString("userName"));
//                    chatLogDto.setUserLogo(userMap.get(chatLog.getSenderId().toString()).getString("userLogo"));
//                }
//
//                //是系统消息&&还是客服介入
//                if (chatLog.getSenderId().intValue() == 0 && chatLogDto.getMessage().equals(MessageNotifyTemplateEnum.staff_join.getContent())) {
//                    continue;
//                } else {
//                    resultList.add(chatLogDto);
//                }
//            }
//        }
//
//        return resultList;
//    }

}